Path 1: 4605 calls (0.82)

(False, None) (4605)

1def is_logger_class() -> tuple[bool, str | None]:
2            for inferred in infer_all(node.func):
3                if isinstance(inferred, astroid.BoundMethod):
4                    parent = inferred._proxied.parent
5                    if isinstance(parent, nodes.ClassDef) and (
6                        parent.qname() == "logging.Logger"
7                        or any(
8                            ancestor.qname() == "logging.Logger"
9                            for ancestor in parent.ancestors()
10                        )
11                    ):
12                        return True, inferred._proxied.name
13            return False, None
            

Path 2: 803 calls (0.14)

(False, None) (803)

1def is_logger_class() -> tuple[bool, str | None]:
2            for inferred in infer_all(node.func):
3                if isinstance(inferred, astroid.BoundMethod):
4                    parent = inferred._proxied.parent
5                    if isinstance(parent, nodes.ClassDef) and (
6                        parent.qname() == "logging.Logger"
7                        or any(
8                            ancestor.qname() == "logging.Logger"
9                            for ancestor in parent.ancestors()
10                        )
11                    ):
12                        return True, inferred._proxied.name
13            return False, None
            

Path 3: 185 calls (0.03)

(False, None) (185)

1def is_logger_class() -> tuple[bool, str | None]:
2            for inferred in infer_all(node.func):
3                if isinstance(inferred, astroid.BoundMethod):
4                    parent = inferred._proxied.parent
5                    if isinstance(parent, nodes.ClassDef) and (
6                        parent.qname() == "logging.Logger"
7                        or any(
8                            ancestor.qname() == "logging.Logger"
9                            for ancestor in parent.ancestors()
10                        )
11                    ):
12                        return True, inferred._proxied.name
13            return False, None
            

Path 4: 16 calls (0.0)

(False, None) (16)

1def is_logger_class() -> tuple[bool, str | None]:
2            for inferred in infer_all(node.func):
3                if isinstance(inferred, astroid.BoundMethod):
4                    parent = inferred._proxied.parent
5                    if isinstance(parent, nodes.ClassDef) and (
6                        parent.qname() == "logging.Logger"
7                        or any(
8                            ancestor.qname() == "logging.Logger"
9                            for ancestor in parent.ancestors()
10                        )
11                    ):
12                        return True, inferred._proxied.name
13            return False, None
            

Path 5: 8 calls (0.0)

(True, 'info') (3) (True, 'debug') (3) (True, 'log') (1) (True, 'warning') (1)

1def is_logger_class() -> tuple[bool, str | None]:
2            for inferred in infer_all(node.func):
3                if isinstance(inferred, astroid.BoundMethod):
4                    parent = inferred._proxied.parent
5                    if isinstance(parent, nodes.ClassDef) and (
6                        parent.qname() == "logging.Logger"
7                        or any(
8                            ancestor.qname() == "logging.Logger"
9                            for ancestor in parent.ancestors()
10                        )
11                    ):
12                        return True, inferred._proxied.name
13            return False, None